package mapper;

import com.sqsf.javabean.User;

import java.util.List;

public interface UserMapper {
    List<User> selectAll();
    //动态sql 可以在程序运行期间根据参数进行sql的动态拼接
    //实现同一个方法 传入不同的参数 执行的sql不同
    //在没有使用动态sql之前 每个方法执行sql固定
    //以查询为例 很多查询的sql相似 仅where语句内容不同
    //但是需要书写不同查询方法
    //user对象查询属性 uid username password phone
    //selectByUid
    //selectByUsername
    //selectByPassword
    //selectByPhone
    //selectByUidAndUsername
    //selectByUidAndPassword
    //selectByUidAndPhone
    //selectByUsernameAndPassword
    //selectByUsernameAndPhone
    //selectByPasswordAndPhone
    //......

    //以上方法sql语句相似 仅where子句不同 使用动态sql
    //仅需要书写一个方法就可以实现以上方法的功能
    //查询的属性都来自于User

    List<User> selectByUser(User user);

    //有时候进行条件查询时 限制查询条件仅有一个
    //设置优先级进行判断查询
    List<User> selectByUserOne(User user);

    //在进行数据修改时一般通过主键对其他数据进行修改
    //与上面的多个方法相同 不同的参数组合可以书写不同的方法
    int updateByUser(User user);

    //where标签与set标签其实是trim标签的简写语法
    int trimTest();

    int deleteByArray(int[] array);

    int insertList(List<User> list);
}
